export namespace NPluginManage {
    export interface IPlugin {
        init():void;
        destroy():void;
    }
    
    export type TPluginConstruct = {new (...agrs: any[]): IPlugin};
    export interface IPluginManage {
        load(plugin: TPluginConstruct):void;
        remove(plugin: string | IPlugin | TPluginConstruct): any;
        getPlugin<T extends IPlugin>(identification: string | IPlugin | TPluginConstruct): T;
    }
}